<?php
namespace app\extension\controller;

use think\Controller;
use think\Loader;
use think\facade\App;

/**
 * 本打算通过修改路由时间调用扩展功能
 * 但是这种方式问题太多，比如
 *  必须传入扩展名、控制器、操作，而不能省略
 *  必须修改URL生成规则
 *  必须修改模板路径的规则
 */
final class IndexController extends Controller
{
    public function index($_extension, $_controller, $_action)
    {
        if(empty($_extension) || empty($_controller) || empty($_action)){
            $this->error("参数不能为空");
        }
        $_controller = Loader::parseName($_controller, 1);

        $class = "extension\\{$_extension}\\controller\\{$_controller}Controller";;

        $vars = [];
        return App::invokeMethod([$class, $_action, $vars]);
        return "ok";
    }
}
